Navigating with Landmark URLs
Users can navigate directly to any landmark using the URL hash format:
https://example.com/help/#/ab9147fe21c0d4b2When a user visits this URL, Reverb 2.0 JavaScript looks up the Landmark ID in the index, then redirects the browser to the corresponding page. The browser address bar updates to show the actual page URL.
Landmark Index Format
Landmark mappings are stored in JavaScript files (
<Group>_lx.js) at each group's root directory. The format uses a compressed structure with indexed arrays:var landmarks = { "f": ["group/page1.html", "group/page2.html"], "a": ["", "wwp100003", "wwp100018"], "e": [[0,0,"966fd5133863dc87"], [1,2,"ab9147fe21c0d4b2"]] };The arrays contain:
f - Filenames (URL-encoded page paths)
a - Anchors (HTML element IDs, empty string for page top)
e - Entries as
[file_index, anchor_index, "landmark_id"]For example,
[0,0,"966fd5133863dc87"]redirects landmark ID966fd5133863dc87to the first file (f[0]) at the first anchor (a[0], which is empty for page top).
Note: Landmark URLs require JavaScript to be enabled in the browser. The JavaScript runtime performs the lookup and redirection. After redirection, the actual page URL works without JavaScript.
You can also author landmark links directly in your source documents — for example, [What's New](#/whats-new) in Markdown++, paired with the Source ID landmark format described below. Because such a link resolves in the reader's browser, ePublisher cannot verify it while generating output, and in releases before 2026.1 the Links report counted every one as an unresolved link even though the published link works. Since 2026.1, the report classifies these links under the Runtime hash link target setting, which defaults to Ignore, so they no longer appear as unresolved-link warnings. For more information, see Target Settings Reference.